home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 002 / wsdos.arc / WSDOS.BAS
BASIC Source File  |  1985-09-27  |  5KB  |  110 lines

  1. 2 'WS-DOS. BAS
  2. 8 '
  3. 10 DEFINT  A-Z:ON ERROR GOTO 9000
  4. 15 A=0:A$="":L$="":P=0 'optimize key variable
  5. 20 CRLF$=CHR$(13)+CHR$(10):HBLF$=CHR$(141)+CHR$(10)'HARD & SOFT CR/LF
  6. 25 SP$=CHR$(32):TB$=CHR$(9)'SPACE & TAB
  7. 30 SH$=CHR$(31):PB$=CHR$(1)+CHR$(32)+CHR$(2) 'SOFT HYPHEN & PLACEBO
  8. 35 DT=19:DIM D$(19): FOR P=1 TO DT:READ D$(P):NEXT'READ DOT COMMAND
  9. 40 EN=4:DIM EN(4), ENO$(4),ENC$(4),MRK(4)'DIM $ READ ENHANCEMENT SYMBOLS
  10. 45 FOR P=1 TO EN:READ EN(P),ENO$(P),ENC$(P):MRK(P)=0:NEXT
  11. 100 KEY OFF:CLS
  12. 105 PRINT"             =====CONVERT=====
  13. 110 PRINT
  14. 115 PRINT"              1 - DOS TO WS
  15. 120 PRINT"              2 - WS TO DOS
  16. 900 PRINT"              X - EXIT
  17. 905 PRINT
  18. 910 LOCATE ,10:PRINT"CHOOSE:";
  19. 915 INPUT"",Q$:IF Q$="X" OR Q$="x" THEN SYSTEM
  20. 920 ON VAL(Q$) GOTO 1000,2000
  21. 925 BEEP:GOTO 100
  22. 930 '
  23. 1000 CLS
  24. 1005 PRINT"             ======DOS TO WORDSTAR CONVERTER====="
  25. 1010 PRINT
  26. 1015 PRINT"This routine will convert a standard DOS file into the format
  27. 1020 PRINT" required by Wordstar to paragraph reforming by conveting
  28. 1025 PRINT" 'hard' carriage returns into 'soft' CRs
  29. 1030 PRINT"If the file contains blank lines between paragraphs or indented
  30. 1035 PRINT"  PARAGRAPGHS, HARD RETURNS WILL BE PRESERVED AR EACH PARAGRAPH END.
  31. 1040 PRINT
  32. 1045 GOSUB 8000:IF FL$="" THEN 100
  33. 1050 PRINT:PRINT"CONVERSION IN PROGRESS...";
  34. 1055 IF EOF(1) THEN 8045 ELSE LINE INPUT #1,L$
  35. 1060 IF EOF(1) THEN PRINT #2,L$+CRLF$;:GOTO 8045
  36. 1065 LINE INPUT #1,A$
  37. 1070 IF A$="" THEN 1090 'TEST FOR BLANK LINE
  38. 1075 IF LEFT$(A$,2)=SP$+SP$ THEN 1090 'TEST FOR INDENT
  39. 1080 IF LEFT$(A$,1)=TB$ THEN 1090 'ALSO TEST FOR TAB
  40. 1085 PRINT #2,L$+HBLF$;:L$=A$:GOTO 1060 'WRITE LINE WITH SOFT CR
  41. 1090 PRINT #2,L$+CRLF$;:L$=A$:PRINT PB$;:GOTO 1060 'WRITE LINE AND HARD CR
  42. 1095 '
  43. 2000 CLS
  44. 2005 PRINT"             =======WORDSTAR TO DOS CONVERTER====
  45. 2010 PRINT
  46. 2015 PRINT" THIS ROUTINE CONVERTS A WORDTAR 'DOCUMENT' FILE
  47. 2020 PRINT" INTO STANDARD DOS FORMAT.  ALL 'HIGH-BIT' CHARACTERS
  48. 2025 PRINT" ARE CONVERTED TO THEIR 'LOW-BIT' EQUIVALENTS
  49. 2030 PRINT"ALL 'SOFT' HYPHENS ARE STRIPPED, EXCEPT THAT ANY HYPHENS
  50. 2035 PRINT" AT THE ENDS OF LINES ARE RETAINED.
  51. 2040 PRINT
  52. 2045 PRINT" YOU CAN EITHER STRIP OR RETAIN LINES THAT CONTAIN DOT COMMANDS.
  53. 2050 PRINT" AS ANOTHER OPTION, YOU CAN EITHER STRIP ALL PRINT ENHANCEMENTS
  54. 2055 PRINT" OR REPLACE CERTAIN ENHANCEMENT CODES AS FOLLOWS
  55. 2060 PRINT
  56. 2065 PRINT"     UNDERLINE (^S) BECOMES << ... >>
  57. 2070 PRINT"     BOLDFACE  (^B) BECOMES <<< ... >>>
  58. 2075 PRINT"     SUPERSCRIPT (^T) BECOMES <^...^>
  59. 2080 PRINT"     SUBSCRIPT (^V) BECOMES <_ ..._>
  60. 2085 PRINT
  61. 2090 PRINT:INPUT"STRIP OR RETAIN DOT COMMANDS (s/r):",Q$
  62. 2095 IF Q$="S" OR Q$="s" THEN STRIPDOT=-1 ELSE STRIPDOT=0
  63. 2100 INPUT"STRIP OR REPLACE PRINT ENHANCEMENTS (s/r):",Q$
  64. 2105 IF Q$="R" OR Q$="r" THEN ENHANCE=-1 ELSE ENHANCE=0
  65. 2110 GOSUB 8000: IF FL$="" THEN 100
  66. 2115 PRINT:PRINT"CONVERSION IN PROGRESS";
  67. 2120 L$=""
  68. 2125 IF EOF(1) THEN 8045 ELSE A$=INPUT$(1,#1):A=ASC(A$):IF A>30 AND A<128 THEN       L$=L$+A$:GOTO 2125 'SOFT HYPHEN OR NORMAL ASCII,PROCEED
  69. 2130 IF A>127 THEN A=A-128:A$=CHR$(A) 'CONVERT TO LOW-BIT CHARACTER
  70. 2135 IF A>31 THEN L$=L$+A$:GOTO 2125 'NOW IF NORMAL ASCII, PROCEED
  71. 2140 IF A=13 THEN GOSUB 2170:A$=INPUT$(1,#1):GOTO 2120'EOL,PROCESS & REMOVE LF
  72. 2145 IF NOT ENHANCE THEN 2125
  73. 2150 'DEAL WITH ENHANCEMENTS
  74. 2155 FOR P=1 TO EN:IF A<>EN(P) THEN 2165 'FIND SPECIAL CHARACTERS
  75. 2160 IF MRK(P) THEN L$=L$+ENC$(P):MRK(P)=0 ELSE L$=L$+ENO$(P):MRK(P)=-1'CONVERT
  76. 2165 NEXT:GOTO 2125
  77. 2170 'SUBROUTINE TO STRIP SOFT HYPHENS AND DOT COMMANDS
  78. 2175 P=INSTR(L$,SH$):IF P=0 OR P>=LEN(L$)-1 THEN 2180 ELSE L$=LEFT(L$,P-1)+          RIGHT$(L$,LEN(L$)-P):GOTO 2175 'STRIP SOFT HYPHENS...
  79. 2180 IF RIGHT$(L$,1)=SH$ THEN MID$(L$,LEN(L$),1)="-" 'EXCEPT AT EOL
  80. 2185 '
  81. 2190 IF STRIPDOT AND (LEFT$(L$,1)=".") THEN 2200 'POSSIBLE DOT COMMAND?
  82. 2195 PRINT #2,L$:PRINT PB$;:RETURN 'WRITE LINE TO DISK
  83. 2200 B$=MID$(L$,2,1):A=ASC(B$):IF A>64 AND A<91 THEN A=A+32:B$=CHR$(A)
  84. 2205 C$=MID$(L$,3,1):A=ASC(C$):IF A>64 AND A<91 THEN A=A+32:C$=CHR$(A)
  85. 2210 DUMP=0:FOR P=1 TO DT:IF B$+C$=D$(P) THEN DUMP=-1 'SEARCH FOR DOT CMDS.
  86. 2215 NEXT:IF DUMP THEN RETURN ELSE GOTO 2195 'DUMP LINE IF DOT COMMAND
  87. 2220 '
  88. 8000 'FILE SPECS
  89. 8005 INPUT"FILE TO CONVERT:", FL$:IF FL$="" THEN RETURN
  90. 8010 IF LEFT$(FL$,1)="?" THEN GOSUB 8035:GOTO 8005
  91. 8015 OPEN FL$ FOR INPUT AS #1
  92. 8020 INPUT "Convert to file:",FL$:IF FL$="" THEN 8005
  93. 8025 IF LEFT$(FL$,1)="?" THEN GOSUB 8035:GOTO 8020
  94. 8030 OPEN FL$ FOR OUTPUT AS #2:RETURN
  95. 8035 IF LEN(FL$)>1 THEN FL$=RIGHT$(FL$,LEN(FL$)-1) ELSE FL$="*.*"
  96. 8040 PRINT:FILES FL$:PRINT:RETURN
  97. 8045 CLOSE:BEEP:PRINT:PRINT"DONE!": GOTO 105
  98. 8050 '
  99. 9000 'ERROR TRAPPING
  100. 9005 IF ERL=8015 THEN CLOSE:BEEP:PRINT"===FILESPEC ERROR===":RESUME 8005
  101. 9010 IF ERL=8030 THEN CLOSE 2:BEEP:PRINT"===FILESPEC ERROR===":RESUME 8020
  102. 9015 IF ERL=8040 THEN CLOSE:BEEP:PRINT"===FILE(S) NOT FOUND===":RESUME 8005
  103. 9020 ON ERROR GOTO 0
  104. 9025 '
  105. 10000 DATA bp,uj,po,cw,ig,cp,fo,fm,he,hm,lh,mb,mt,pa,op,pn,pc,sr,pl
  106. 10005 DATA 19,"<<",">>"
  107. 10010 DATA 2,"<<<",">>>"
  108. 10015 DATA 22,"<",">"
  109. 10020 DATA 20, "<^","^>"
  110.